home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat3 / il_c / ilFGaussFiltImg.z / ilFGaussFiltImg
Encoding:
Text File  |  2002-10-03  |  15.1 KB  |  331 lines

  1.  
  2.  
  3.  
  4. iiiillllFFFFGGGGaaaauuuussssssssFFFFiiiillllttttIIIImmmmgggg((((3333))))                    IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      iiiillllFFFFGGGGaaaauuuussssssssFFFFiiiillllttttIIIImmmmgggg - Applies a gaussian fourier domain filter to a fourier
  10.      domain image
  11.  
  12. IIIINNNNHHHHEEEERRRRIIIITTTTSSSS FFFFRRRROOOOMMMM
  13.      ilLink : ilImage : ilCacheImg : ilMemCacheImg : ilOpImg : ilFFiltImg
  14.  
  15. HHHHEEEEAAAADDDDEEEERRRR FFFFIIIILLLLEEEE
  16.      #include <il/ilCdefs.h>
  17.  
  18. CCCCLLLLAAAASSSSSSSS DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  19.      ilFGaussFiltImg applies a gaussian-shaped Fourier domain filter to the
  20.      complex fourier transform of a real image. It is publicly derived from
  21.      ilFFiltImg and is one of the Fourier operators. Its source image should
  22.      have the same format as that produced by a forward 2D-FFT. It can be one
  23.      of a chain of operators that follows a forward 2D-FFT and precedes an
  24.      inverse 2D-FFT.
  25.  
  26.      FFFFiiiilllltttteeeerrrr EEEEqqqquuuuaaaattttiiiioooonnnn
  27.  
  28.      H(u,v) = hfgain + (dcgain - hfgain) * exp
  29.               {-[(a11 u + a12 v)**2 + (a21 u + a22 v)**2 ]}
  30.      H() = tranfer function of the filter
  31.      u,v = 2D frequency coordinates
  32.      hfgain = gain of filter at the Nyquist frequency (highest).
  33.      dcgain = gain of the filter at zero frequency (DC).
  34.      minhalf = frequency of half power point along the minor elliptical
  35.                axis
  36.      majhalf = frequency of half power point along the major elliptical
  37.                axis
  38.      theta = .017453 * angle in degrees of the filter's orientation
  39.      xSize = x dimension of the source image
  40.      ySize = y dimension of the source image
  41.  
  42.      sigmaL = sqrt (.693147/ (minHalf*minHalf))
  43.      sigmaS = sqrt (.693147/ (majHalf*majHalf))
  44.  
  45.      a11 =  sigmaS * cos(theta) /xSize
  46.      a12 =  sigmaS * sin(theta) /ySize
  47.      a21 = -sigmaL * sin(theta) /xSize
  48.      a22 =  sigmaL * cos(theta) /ySize
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. iiiillllFFFFGGGGaaaauuuussssssssFFFFiiiillllttttIIIImmmmgggg((((3333))))                    IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll
  71.  
  72.  
  73.  
  74. CCCCLLLLAAAASSSSSSSS MMMMEEEEMMMMBBBBEEEERRRR FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNN SSSSUUUUMMMMMMMMAAAARRRRYYYY
  75.      CCCCoooonnnnssssttttrrrruuuuccccttttoooorrrr
  76.  
  77.           ilFGaussFiltImg *ilFGaussFiltImgCreate(ilImage *src, float hfgain,
  78.                                                  float dcgain, float minhalf,
  79.                                                  float majhalf, float theta)
  80.  
  81.      SSSSeeeetttt ffffiiiilllltttteeeerrrr ppppaaaarrrraaaammmmeeeetttteeeerrrrssss
  82.  
  83.           void ilFGaussFiltImgSetDCgain(ilFGaussFiltImg *img, float value)
  84.           void ilFGaussFiltImgSetHFgain(ilFGaussFiltImg *img, float value)
  85.           void ilFGaussFiltImgSetMajHalf(ilFGaussFiltImg *img, float value)
  86.           void ilFGaussFiltImgSetMinHalf(ilFGaussFiltImg *img, float value)
  87.           void ilFGaussFiltImgSetTheta(ilFGaussFiltImg *img, float value)
  88.  
  89.  
  90. FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNN DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNNSSSS
  91.      iiiillllFFFFGGGGaaaauuuussssssssFFFFiiiillllttttIIIImmmmgggg(((())))
  92.  
  93.           ilFGaussFiltImg *ilFGaussFiltImgCreate(ilImage *src, float dcgain,
  94.                                                  float hfgain, float majhalf,
  95.                                                  float minhalf, float theta)
  96.  
  97.  
  98.           Constructor for this class. _s_r_c is the fourier domain source image
  99.           which is to be gaussian filtered.  _s_r_c should have the same format
  100.           as that produced by a forward 2D-FFT.
  101.  
  102.           _d_c_g_a_i_n    Gain of the filter at zero frequency (DC).  Values in the
  103.                     zero-to-one range are standard. Values greater than one
  104.                     may be used when you are concerned with the shape of the
  105.                     gaussian curve.
  106.  
  107.           _h_f_g_a_i_n    Gain of filter at the Nyquist frequency (highest).  Values
  108.                     in the zero-to-one range are standard. Values greater than
  109.                     one may be used when you are concerned with the shape of
  110.                     the gaussian curve.
  111.  
  112.           _m_a_j_h_a_l_f   Frequency along the major axis of the filter's elliptical
  113.                     contours at which the filter attains half of its maximum
  114.                     power. The frequencies are scaled so that DC is 0.0 and
  115.                     the NyQuist frequency is 0.50.
  116.                     0.0 <= majhalf <= 0.5
  117.  
  118.           _m_i_n_h_a_l_f   Frequency along the minor axis of the filter's elliptical
  119.                     contours at which the filter attains half of its maximum
  120.                     power. The frequencies are scaled so that DC is 0.0 and
  121.                     the NyQuist frequency is 0.50.
  122.                     0.0 <= minhalf <= 0.5
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. iiiillllFFFFGGGGaaaauuuussssssssFFFFiiiillllttttIIIImmmmgggg((((3333))))                    IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll
  137.  
  138.  
  139.  
  140.           _t_h_e_t_a     Angle in degrees, relative to the samples direction, of
  141.                     the filter's orientation in the complex frequency domain.
  142.                     0.0 <= theta <= 360.0
  143.  
  144.      sssseeeettttDDDDCCCCggggaaaaiiiinnnn(((())))
  145.  
  146.           void ilFGaussFiltImgSetDCgain(ilFGaussFiltImg *img, float value)
  147.  
  148.  
  149.           dcgain is set to _v_a_l_u_e. This function also sets the altered flag.
  150.           See the ilOpImg man page for more information on the altered flag.
  151.  
  152.      sssseeeettttHHHHFFFFggggaaaaiiiinnnn(((())))
  153.  
  154.           void ilFGaussFiltImgSetHFgain(ilFGaussFiltImg *img, float value)
  155.  
  156.  
  157.           hfgain is set to _v_a_l_u_e. This function also sets the altered flag.
  158.           See the ilOpImg man page  for more information on the altered flag.
  159.  
  160.      sssseeeettttMMMMaaaajjjjHHHHaaaallllffff(((())))
  161.  
  162.           void ilFGaussFiltImgSetMajHalf(ilFGaussFiltImg *img, float value)
  163.  
  164.  
  165.           majhalf is set to _v_a_l_u_e.  Note that 0.0 <= _v_a_l_u_e < 0.5.  This
  166.           function also sets the altered flag. See the ilOpImg man page for
  167.           more information on the altered flag.
  168.  
  169.      sssseeeettttMMMMiiiinnnnHHHHaaaallllffff(((())))
  170.  
  171.           void ilFGaussFiltImgSetMinHalf(ilFGaussFiltImg *img, float value)
  172.  
  173.  
  174.           minhalf is set to _v_a_l_u_e.  Note that 0.0 <= _v_a_l_u_e < 0.5.  This
  175.           function also sets the altered flag. See the ilOpImg man page for
  176.           more information on the altered flag.
  177.  
  178.      sssseeeettttTTTThhhheeeettttaaaa(((())))
  179.  
  180.           void ilFGaussFiltImgSetTheta(ilFGaussFiltImg *img, float value)
  181.  
  182.  
  183.           The angle of the filter's orientation is set to _v_a_l_u_e degrees. This
  184.           function also sets the altered flag. See the ilOpImg man page for
  185.           more information on the altered flag.
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. iiiillllFFFFGGGGaaaauuuussssssssFFFFiiiillllttttIIIImmmmgggg((((3333))))                    IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll
  203.  
  204.  
  205.  
  206. IIIINNNNHHHHEEEERRRRIIIITTTTEEEEDDDD MMMMEEEEMMMMBBBBEEEERRRR FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNNSSSS
  207.    IIIInnnnhhhheeeerrrriiiitttteeeedddd ffffrrrroooommmm iiiillllOOOOppppIIIImmmmgggg
  208.      ilOpImgClearClamp(), ilOpImgGetBias(), ilOpImgGetClamp(),
  209.      ilOpImgGetValidOrders(), ilOpImgGetValidTypes(), ilOpImgIsClamped(),
  210.      ilOpImgIsPrecisionKept(), ilOpImgKeepPrecision(), ilOpImgSetBias(),
  211.      ilOpImgSetClampMinMax(), ilOpImgSetClamp()
  212.  
  213.    IIIInnnnhhhheeeerrrriiiitttteeeedddd ffffrrrroooommmm iiiillllMMMMeeeemmmmCCCCaaaacccchhhheeeeIIIImmmmgggg
  214.      ilMemCacheImgEnableMP(), ilMemCacheImgGetPageTime(),
  215.      ilMemCacheImgGetRetainMode(), ilMemCacheImgGetThrashMode(),
  216.      ilMemCacheImgGetThrashTime(), ilMemCacheImgGetTotalPageTime(),
  217.      ilMemCacheImgIsMPenabled(), ilMemCacheImgSetRetainMode(),
  218.      ilMemCacheImgSetThrashMode()
  219.  
  220.    IIIInnnnhhhheeeerrrriiiitttteeeedddd ffffrrrroooommmm iiiillllCCCCaaaacccchhhheeeeIIIImmmmgggg
  221.      ilCacheImgFlush(), ilCacheImgGetCacheSize()
  222.  
  223.    IIIInnnnhhhheeeerrrriiiitttteeeedddd ffffrrrroooommmm iiiillllIIIImmmmaaaaggggeeee
  224.      ilAddInput(), ilAllocFillData(), ilClipTile(), ilClipTileAsTile(),
  225.      ilClipTileFloat(), ilClipTileFloatAsTile(),
  226.      ilConfigureRetainedCacheImage(), ilCopy(), ilCopyTile(), ilCopyTile3D(),
  227.      ilCopyTileCfg(), ilFillTile(), ilFillTile3D(), ilFillTileRGB(),
  228.      ilFreeFillData(), ilGetColorImg(), ilGetColorModel(), ilGetColormap(),
  229.      ilGetColormapPtr(), ilGetCompression(), ilGetConfig(), ilGetCsize(),
  230.      ilGetDataType(), ilGetDimensions(), ilGetDirectInput(),
  231.      ilGetDisplayCacheEnable(), ilGetFill(), ilGetFillData(),
  232.      ilGetFillValue(), ilGetHeight(), ilGetHwEnable(), ilGetHwHint(),
  233.      ilGetHwHintName(), ilGetHwIntHint(), ilGetHwIntHintName(), ilGetInput(),
  234.      ilGetInputTileRequirement(), ilGetLockTileSet(), ilGetMappedPageSize(),
  235.      ilGetMappedSize(), ilGetMaxColormapLevels(), ilGetMaxValue(),
  236.      ilGetMinValue(), ilGetNumChans(), ilGetNumInputs(), ilGetOrder(),
  237.      ilGetOrientation(), ilGetPageBorder(), ilGetPageBorderPtr(),
  238.      ilGetPageBorderX(), ilGetPageBorderY(), ilGetPageBorderZ(),
  239.      ilGetPageCounts(), ilGetPageDelta(), ilGetPageDeltaStruct(),
  240.      ilGetPageDimensions(), ilGetPageIndices(), ilGetPageOrigin(),
  241.      ilGetPageOriginC(), ilGetPageOriginStruct(), ilGetPageOriginX(),
  242.      ilGetPageOriginY(), ilGetPageOriginZ(), ilGetPageSize(),
  243.      ilGetPageSizeBytes(), ilGetPageSizeC(), ilGetPageSizePix(),
  244.      ilGetPageSizeStruct(), ilGetPageSizeVal(), ilGetPageSizeX(),
  245.      ilGetPageSizeXY(), ilGetPageSizeY(), ilGetPageSizeZ(), ilGetPixel(),
  246.      ilGetPixel3D(), ilGetPriority(), ilGetScaleMax(), ilGetScaleMin(),
  247.      ilGetSize(), ilGetSizePtr(), ilGetStrides(), ilGetSubTile(),
  248.      ilGetSubTile3D(), ilGetTile(), ilGetTile3D(), ilGetWidth(), ilGetXsize(),
  249.      ilGetYsize(), ilGetZsize(), ilHasPageBorder(), ilHasPages(),
  250.      ilInitScaleMinMax(), ilIsColorImg(), ilIsIntegral(),
  251.      ilIsMirrorOrientation(), ilIsSigned(), ilIsWritable(), ilLockPage(),
  252.      ilLockPageSet(), ilLockTile(), ilLockTile3D(), ilMapFlipTrans(),
  253.      ilMapFromInput(), ilMapFromInput2D(), ilMapFromInput3D(),
  254.      ilMapFromSource(), ilMapFromSource2D(), ilMapFromSource3D(),
  255.      ilMapOrientation(), ilMapSize(), ilMapTile(), ilMapTileFlipTrans(),
  256.      ilMapTileFloat(), ilMapToInput(), ilMapToInput2D(), ilMapToInput3D(),
  257.      ilMapToSource(), ilMapToSource2D(), ilMapToSource3D(), ilMapXY(),
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. iiiillllFFFFGGGGaaaauuuussssssssFFFFiiiillllttttIIIImmmmgggg((((3333))))                    IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll
  269.  
  270.  
  271.  
  272.      ilMapXYFloat(), ilMapXYSign(), ilQCopyTileCfg(), ilQFillTile3D(),
  273.      ilQFillTileRGB(), ilQGetSubTile3D(), ilQGetTile3D(), ilQLockPageSet(),
  274.      ilQSetSubTile3D(), ilQSetTile3D(), ilRemoveHwHint(),
  275.      ilRemoveHwHintName(), ilRemoveInput(), ilSetColorModel(),
  276.      ilSetColormap(), ilSetCompression(), ilSetCsize(), ilSetDataType(),
  277.      ilSetDisplayCacheEnable(), ilSetFill(), ilSetFillValue(),
  278.      ilSetHwEnable(), ilSetHwHint(), ilSetHwIntHint(), ilSetHwIntHintName(),
  279.      ilSetInput(), ilSetMaxColormapLevels(), ilSetMaxValue(), ilSetMinValue(),
  280.      ilSetNumChans(), ilSetOrder(), ilSetOrientation(), ilSetPageBorder(),
  281.      ilSetPageBorderStruct(), ilSetPageSize(), ilSetPageSizeC(),
  282.      ilSetPageSizeStruct(), ilSetPageSizeXY(), ilSetPageSizeZ(), ilSetPixel(),
  283.      ilSetPixel3D(), ilSetPriority(), ilSetScaleMinMax(), ilSetScaleType(),
  284.      ilSetSize(), ilSetSubTile(), ilSetSubTile3D(), ilSetTile(),
  285.      ilSetTile3D(), ilSetXYsize(), ilSetXsize(), ilSetYsize(), ilSetZsize(),
  286.      ilUnlockPage(), ilUnlockPageSet()
  287.  
  288.    IIIInnnnhhhheeeerrrriiiitttteeeedddd ffffrrrroooommmm iiiillllLLLLiiiinnnnkkkk
  289.      ilLinkClearSet(), ilLinkClearStatus(), ilLinkGetDescription(),
  290.      ilLinkGetDirectParent(), ilLinkGetDisabledIndex(), ilLinkGetFloatProp(),
  291.      ilLinkGetGenerationID(), ilLinkGetIntProp(), ilLinkGetNumChildren(),
  292.      ilLinkGetNumParents(), ilLinkGetParent(), ilLinkGetPtrProp(),
  293.      ilLinkGetRelatedChild(), ilLinkGetRelatedDelete(),
  294.      ilLinkGetRelatedType(), ilLinkGetStatus(), ilLinkIsAllowed(),
  295.      ilLinkIsAltered(), ilLinkIsEnabled(), ilLinkIsRelated(), ilLinkIsSet(),
  296.      ilLinkRemoveParent(), ilLinkRemoveProp(), ilLinkSetDescription(),
  297.      ilLinkSetDisabledIndex(), ilLinkSetEnabled(), ilLinkSetParent(),
  298.      ilLinkSetProp(), ilLinkSetRelatedDelete(), ilLinkSetRelatedType()
  299.  
  300. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  301.      ilRFFTfImg(3), ilRFFTiImg(3), ilOpImg(3), ilFFiltImg(3), ilFExpFiltFil-
  302.      tImg(3)
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.                                                                         PPPPaaaaggggeeee 5555
  328.  
  329.  
  330.  
  331.